#pragma once

//Utility
int uintArrLen(const unsigned int* source);

//Serialization

void SerializeChar(char* destination, int startByte, char source);
void SerializeInt(char* destination, int startByte, int source);
void SerializeString(char* destination, int startByte, char* source);
void SerializeUIntArray(char* destination, int startByte, unsigned int* source);

//Deserialization

char DeserializeChar(char* source, int startByte);
int DeserializeInt(char* source, int startByte);

//ALLOCATES MEMORY!
char* DeserializeString(char* source, int startByte);
unsigned int* DeserializeUIntArray(char* source, int startByte);